<?xml version="1.0" encoding="utf-8"?>
<xs:schema
  targetNamespace="http://schemas.microsoft.com/developer/msbuild/2003"
  xmlns:xs="http://www.w3.org/2001/XMLSchema"
  xmlns:msb="http://schemas.microsoft.com/developer/msbuild/2003"
  elementFormDefault="qualified">

  <xs:include schemaLocation="Microsoft.Build.Core.xsd" />
  
  <xs:element name="Add" substitutionGroup="msb:Task">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="msb:TaskType">
          <xs:attribute name="ChangePackageID" type="msb:non_empty_string" use="required" />
          <xs:attribute name="CheckinComments" type="msb:non_empty_string" use="required" />
          <xs:attribute name="Files" use="required" />
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="Checkin" substitutionGroup="msb:Task">
    <xs:complexType>
      <xs:complexContent mixed="false">
        <xs:extension base="msb:TaskType">
          <xs:attribute name="ChangePackageID" type="msb:non_empty_string" use="required" />
          <xs:attribute name="CheckinComments" type="msb:non_empty_string" use="required" />
          <xs:attribute name="Files" use="required" />
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="CheckInBinaries" substitutionGroup="msb:Task">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="msb:TaskType">
          <xs:attribute name="BuildLabel" type="msb:non_empty_string" use="required" />
          <xs:attribute name="ChangePackageID" type="xs:string" />
          <xs:attribute name="Files" use="required" />
          <xs:attribute name="NewFiles" />
          <xs:attribute name="OriginalFiles" use="required" />
          <xs:attribute name="TaskID" type="msb:non_empty_string" use="required" />
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="Checkout" substitutionGroup="msb:Task">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="msb:TaskType">
          <xs:attribute name="ChangePackageID" type="msb:non_empty_string" use="required" />
          <xs:attribute name="Files" use="required" />
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="CloseChangePackage" substitutionGroup="msb:Task">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="msb:TaskType">
          <xs:attribute name="ChangePackageID" type="msb:non_empty_string" use="required" />
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="CreateChangePackage" substitutionGroup="msb:Task">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="msb:TaskType">
          <xs:attribute name="ChangePackageDescription" type="msb:non_empty_string" use="required" />
          <xs:attribute name="ChangePackageID" type="xs:string" />
          <xs:attribute name="ChangePackageSummary" type="msb:non_empty_string" use="required" />
          <xs:attribute name="TaskID" type="msb:non_empty_string" use="required" />
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="DetermineNewFiles" substitutionGroup="msb:Task">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="msb:TaskType">
          <xs:attribute name="Files" use="required" />
          <xs:attribute name="NewFiles" />
          <xs:attribute name="OriginalFiles" use="required" />
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="Resync" substitutionGroup="msb:Task">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="msb:TaskType">
          <xs:attribute name="Timeout" use="required" />
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
</xs:schema>